package com.ruoyi.cderp.service.impl;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Random;

import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.cderp.mapper.SettleInItemMapper;
import com.ruoyi.cderp.domain.SettleInItem;
import com.ruoyi.cderp.service.ISettleInItemService;

/**
 * 收入项目Service业务层处理
 *
 * @author ruoyi
 * @date 2025-03-04
 */
@Service
public class SettleInItemServiceImpl implements ISettleInItemService
{
    @Autowired
    private SettleInItemMapper settleInItemMapper;

    /**
     * 查询收入项目
     *
     * @param id 收入项目主键
     * @return 收入项目
     */
    @Override
    public SettleInItem selectSettleInItemById(String id)
    {
        return settleInItemMapper.selectSettleInItemById(id);
    }

    /**
     * 查询收入项目列表
     *
     * @param settleInItem 收入项目
     * @return 收入项目
     */
    @Override
    public List<SettleInItem> selectSettleInItemList(SettleInItem settleInItem)
    {
        return settleInItemMapper.selectSettleInItemList(settleInItem);
    }

    /**
     * 新增收入项目
     *
     * @param settleInItem 收入项目
     * @return 结果
     */
    @Override
    public int insertSettleInItem(SettleInItem settleInItem)
    {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String formattedDate = sdf.format(new Date());
        Random random = new Random();
        int randomNumber = 10000000 + random.nextInt(90000000); // 生成8位数随机数
        settleInItem.setId("18" + formattedDate+randomNumber);
        //角色
        settleInItem.setCreateBy("系统管理员");
        //编号
        settleInItem.setCreateById("1");
        settleInItem.setCreateTime(DateUtils.getNowDate());
        return settleInItemMapper.insertSettleInItem(settleInItem);
    }

    /**
     * 修改收入项目
     *
     * @param settleInItem 收入项目
     * @return 结果
     */
    @Override
    public int updateSettleInItem(SettleInItem settleInItem)
    {
        //角色
        settleInItem.setUpdateBy("系统管理员");
        //编号
        settleInItem.setUpdateById("1");
        settleInItem.setUpdateTime(DateUtils.getNowDate());
        return settleInItemMapper.updateSettleInItem(settleInItem);
    }

    /**
     * 批量删除收入项目
     *
     * @param ids 需要删除的收入项目主键
     * @return 结果
     */
    @Override
    public int deleteSettleInItemByIds(String[] ids)
    {
        return settleInItemMapper.deleteSettleInItemByIds(ids);
    }

    /**
     * 删除收入项目信息
     *
     * @param id 收入项目主键
     * @return 结果
     */
    @Override
    public int deleteSettleInItemById(String id)
    {
        return settleInItemMapper.deleteSettleInItemById(id);
    }
}
